﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
using ManagerInfosSuite.Manager;

namespace ManagerInfosSuite
{
    public partial class Inserisci_Domande : Form
    {
        public ManagerQuiz MQuiz = new ManagerQuiz();

        public List<TipologiaTest> ListaTipologiaTest;

        public Inserisci_Domande()
        {
            InitializeComponent();
            ListaTipologiaTest = MQuiz.GetTipologie();
            cmbTipologia.Items.Clear();

            foreach (var item in ListaTipologiaTest)
                cmbTipologia.Items.Add(item.Descrizione);
        }

        private void cmbTipologia_SelectedValueChanged(object sender, EventArgs e)
        {

            string testo = cmbTipologia.SelectedItem.ToString();

            int index = (int)ListaTipologiaTest.Where(x => x.Descrizione == testo).Select(x => x.IdTipologiaTest).Single();
            var lista = MQuiz.GetDomande(index);
            LVDomande.Items.Clear();
            foreach (var item in lista)
            {
                string[] stringa = new string[2];
                stringa[0] = (LVDomande.Items.Count + 1).ToString();
                stringa[1] = item.Domanda;
                LVDomande.Items.Add(new ListViewItem(stringa));
            }
            txtMaxDomande.Text = MQuiz.GetDomande(index).Count.ToString();
        }

        private void Salva_Click(object sender, EventArgs e)
        {
            Domande d = new Domande()
            {
                IdTipologiaTest = ListaTipologiaTest.
                Where(x => x.Descrizione == cmbTipologia.SelectedItem).
                Select(x => x.IdTipologiaTest).
                Single(),
                Domanda = txtDomanda.Text
            };

            d.PossibiliRisposte.Add(new PossibiliRisposte()
            {
                DescrizioneRisposta = txtRisposta1.Text,
                IsCorretta = true
            });

            d.PossibiliRisposte.Add(new PossibiliRisposte()
            {
                DescrizioneRisposta = txtRisposta2.Text,
                IsCorretta = false
            });

            d.PossibiliRisposte.Add(new PossibiliRisposte()
            {
                DescrizioneRisposta = txtRisposta3.Text,
                IsCorretta = false
            });

            d.PossibiliRisposte.Add(new PossibiliRisposte()
            {
                DescrizioneRisposta = txtRisposta4.Text,
                IsCorretta = false
            });
            d.Version = Convert.ToInt32(txtVersion.Text);

            var esito = MQuiz.InsertDomanda(d);
            if (esito)
            {
                MessageBox.Show("Inserimento Effettuato con successo");
                txtDomanda.Text = txtRisposta1.Text = txtRisposta2.Text = txtRisposta3.Text = txtRisposta4.Text = "";
                txtDomanda.Focus();
                //                radioButton2.Checked = radioButton3.Checked = radioButton4.Checked = false;
                //              radioButton1.Checked = true;
            }
        }


        private void LVDomande_DoubleClick(object sender, EventArgs e)
        {
            var singoladomanda = new ManagerQuiz().GetSingolaDomandaFromTesto(LVDomande.SelectedItems[0].SubItems[1].Text);

            ModificaDomanda ModDom = new ModificaDomanda(singoladomanda);

            ModDom.Show();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            new ManagerQuiz().UpdatePunteggi();
        }
    }
}
